//======================================================================================
//  Apache License, Version 2.0
//  Notes:Use this command to anonymously check out the latest project source code:
//  Non-members may check out a read-only working copy anonymously over HTTP.
//  SVN checkout http://YHHLineCommandWsp.googlecode.com/svn/trunk/ 
//
//  Author:		Kevin Yang
//  Email:		Bigearrabbit@qq.com
//
//  DATE:		2013-4-6
//
//  File Name:	
//
//  Notes:
//
//======================================================================================
#ifndef YHHELineCommandFactory_H
#define YHHELineCommandFactory_H

// Local Framework
#include "YHHLineCommandItf.h"
#include "YHHILineCommandChild.h"
#include "YHHLineCommandChildParam.h"

// System Framework
#include "CATBaseUnknown.h" // needed to derive from CATBaseUnknown

class CATISpecObject;

/// <summary>YHHLineCommandChild Factory</summary>
/// <return></return>
/// <remarks> Class extending the CATPrtCont object: The container of specifications
/// in the Part document.It implements the interfaces :
/// YHHLineCommandInterfaces.YHHILineCommandFactory</remarks>
/// <author>Kevin Yang</author>
/// <date>2013-4-5</date>
class YHHELineCommandFactory: public CATBaseUnknown
{
    CATDeclareClass;
    
public:
    
    // Standard constructors and destructors for an implementation class
    // -----------------------------------------------------------------
    YHHELineCommandFactory ();
    virtual ~YHHELineCommandFactory ();

public:

	/// <summary>Create YHHILineCommandChild Instance</summary>
	/// <param name="oppLineCommand"> Out Instance</param>
	/// <param name="ipiValue"> Input Param Value</param>
	/// <return>HRESULT</return>
	/// <remarks>Implements the method CreateYHHILineCommand of the interface YHHILineCommandFactory</remarks>
	/// <author>Kevin Yang</author>
	/// <date>2013-4-5</date>
	HRESULT CreateYHHILineCommand(YHHILineCommandChild ** oppLineCommand,
		const YHHLineCommandChildParam * ipiValue = NULL);
private:
    // The copy constructor and the equal operator must not be implemented
    // -------------------------------------------------------------------
    YHHELineCommandFactory (YHHELineCommandFactory &);
    YHHELineCommandFactory& operator=(YHHELineCommandFactory&);
    
};


#endif
